package top.cptr.ipmitooljavarpc.rpc;

import top.cptr.ipmitooljavarpc.common.R;
import top.cptr.ipmitooljavarpc.domain.dto.BaseDto;
import top.cptr.ipmitooljavarpc.domain.dto.SetFanSpeedDto;
import top.cptr.ipmitooljavarpc.service.FanControl;
import top.cptr.ipmitooljavarpc.utils.BaseParamsVerificationUtil;
import top.cptr.simpleRpc.rpccore.annotation.Rpc;

/**
 * @author Tiger_L
 * @version 1.0
 * @description 风扇
 * @date 2024/9/16 15:11
 */
public class FanRcp {

    private final FanControl fanControl = new FanControl();


    /**
     * 设置风扇自动转速
     *
     * @param params 参数
     * @return 结果
     */
    @Rpc
    public R<Object> fanAuto(BaseDto params) {
        boolean verification = BaseParamsVerificationUtil.verification(params);
        if (!verification) {
            return R.fail("参数校验失败");
        }
        return fanControl.fanAuto(params);
    }

    /**
     * 设置风扇转速百分比
     *
     * @param params 参数
     * @return 结果
     */
    @Rpc
    public R<Object> setFanSpeed(SetFanSpeedDto params) {
//        公共参数校验
        boolean verification = BaseParamsVerificationUtil.verification(params);
        if (!verification) {
            return R.fail("参数校验失败");
        }
//        参数校验
        if (!(params.getPercentage() >= 15)) {
            return R.fail("为避免转速过低导致温度过高，请将转速百分比设置为15%及以上");
        }
        if (!(params.getPercentage() <= 100)) {
            return R.fail("请将转速百分比设置为100%及以下");
        }
        return fanControl.setFanSpeed(params);
    }
}
